Section 3.6.7.3
Bozo


The bozo pattern.

The bozo pattern is a very smooth, random noise function that is traditionally used with some turbulence to create clouds. The spotted pattern is identical to bozo but in early versions of POV-Ray, spotted did not allow turbulence to be added. Turbulence can now be added to any pattern so these are redundant but both are retained for backwards compatibility. The bumps pattern is also identical to bozo when used anywhere except in a normal statement. When used as a normal, bumps uses a slightly different method to perturb the normal with a similar noise function.

The bozo noise function has the following properties:

1. It's defined over 3D space i.e., it takes x, y, and z and returns the noise value there.
2. If two points are far apart, the noise values at those points are relatively random.
3. If two points are close together, the noise values at those points are close to each other.

You can visualize this as having a large room and a thermometer that ranges from 0.0 to 1.0. Each point in the room has a temperature. Points that are far apart have relatively random temperatures. Points that are close together have close temperatures. The temperature changes smoothly, but randomly as we move through the room.

Now, let's place an object into this room along with an artist. The artist measures the temperature at each point on the object and paints that point a different color depending on the temperature. What do we get? A POV-Ray bozo texture!

The bozo pattern uses the ramp_wave wave type by default but may use any wave type. The pattern may be used with color_map, pigment_map, normal_map, slope_map and texture_map.


Section 3.6.7.4
Brick


The brick pattern.

The brick pattern generates a pattern of bricks. The bricks are offset by half a brick length on every other row in the X and Z directions. A layer of mortar surrounds each brick. The syntax is given by

pigment { brick COLOR_1, COLOR_2 brick_size VECTOR mortar FLOAT }

where COLOR_1 is the color of the brick itself, and COLOR_2 is the color of the mortar. If no colors are specified, a default deep red and dark gray are used. The default size of the brick and mortar together is <8, 3, 4.5> units. The default thickness of the mortar is 0.5 units. These values may be changed using the optional brick_size and mortar pattern modifiers. You may also use pigment statements in place of the colors. For example:

pigment { brick pigment{Jade}, pigment{Black_Marble} }

When used with normals, the syntax is

normal { brick BUMP_FLOAT }

Where BUMP_FLOAT is an optional bump size float value. You may also use full normal statements. For example:

normal { brick normal{bumps 0.2}, normal{granite 0.3} }

When used with textures, the syntax is

texture { brick texture{T_Gold_1A},texture{Stone12} }

This is a block pattern which cannot use wave types, color_map, or slope_map modifiers.


Section 3.6.7.5
Bumps


The bumps pattern.

The bumps pattern was originally designed only to be used as a normal pattern. It uses a very smooth, random noise function that creates the look of rolling hills when scaled large or a bumpy orange peal when scaled small. Usually the bumps are about 1 unit apart.

When used as a normal, bumps uses a specialized normal perturbation function. This means that the bumps pattern cannot be used with normal_map, slope_map, or wave type modifiers in a normal statement.

When used as a pigment pattern or texture pattern, the bumps pattern identical to bozo or spotted and is similar to normal bumps but is not identical as are most normals when compared to pigments. When used as pigment or texture statements the bumps pattern uses the ramp_wave wave type by default but may use any wave type. The pattern may be used with color_map, pigment_map, and texture_map.


Section 3.6.7.6
Checker


The checker pattern.

The checker pattern produces a checkered pattern consisting of alternating squares of COLOR_1 and COLOR_2. If no colors are specified then default blue and green colors are used.

pigment { checker COLOR_1, COLOR_2 }

The checker pattern is actually a series of cubes that are one unit in size. Imagine a bunch of 1 inch cubes made from two different colors of modeling clay. Now imagine arranging the cubes in an alternating check pattern and stacking them in layer after layer so that the colors still alternated in every direction. Eventually you would have a larger cube. The pattern of checks on each side is what the POV-Ray checker pattern produces when applied to a box object. Finally imagine cutting away at the cube until it is carved into a smooth sphere or any other shape. This is what the checker pattern would look like on an object of any kind.

You may also use pigment statements in place of the colors. For example:

pigment { checker pigment{Jade}, pigment{Black_Marble} }

When used with normals, the syntax is

normal { checker BUMP_FLOAT }

Where BUMP_FLOAT is an optional bump size float value. You may also use full normal statements. For example:

normal { checker normal{gradient x scale .2}, normal{gradient y scale .2} }

When used with textures, the syntax is...

texture { checker texture{T_Wood_3A},texture{Stone12} }

This use of checker as a texture pattern replaces the special tiles texture in previous versions of POV-Ray. You may still use tiles but it may be phased out in future versions so checker textures are best.

This is a block pattern which cannot use wave types, color_map, or slope_map modifiers.


Section 3.6.7.7
Crackle


The crackle pattern.

The crackle pattern is set of random tiled polygons. With a large scale and no turbulence it makes a pretty good stone wall or floor. With a small scale and no turbulence it makes a pretty good crackle ceramic glaze. Using high turbulence it makes a good marble that avoids the problem of apparent parallel layers in traditional marble.

Mathematically, the set crackle(p)=0 is a 3D Voronoi diagram of a field of semi random points, and crackle(p)>0 is the distance from the set along the shortest path (A Voronoi diagram is the locus of points equidistant from their 2 nearest neighbors from a set of disjoint points, like the membranes in suds are to the centers of the bubbles).

The crackle pattern uses the ramp_wave wave type by default but may use any wave type. The pattern may be used with color_map, pigment_map, normal_map, slope_map and texture_map.


Section 3.6.7.8
Dents


The dents pattern.

The dents pattern was originally designed only to be used as a normal pattern. It is especially interesting when used with metallic textures, it gives impressions into the metal surface that look like dents have been beaten into the surface with a hammer. Usually the dents are about 1 unit apart.

When used as a normal pattern, dents uses a specialized normal perturbation function. This means that the dents pattern cannot be used with normal_map, slope_map, or wave type modifiers in a normal statement.

When used as a pigment pattern or texture pattern, the dents pattern is similar to normal dents but is not identical as are most normals when compared to pigments. When used in pigment or texture statements the dents pattern uses the ramp_wave wave type by default but may use any wave type. The pattern may be used with color_map, pigment_map, and texture_map.


Section 3.6.7.9
Gradient


The gradient pattern.

One of the simplest patterns is the gradient pattern. It is specified as

pigment {gradient VECTOR}

where VECTOR is a vector pointing in the direction that the colors blend. For example:

pigment { gradient x } // bands of color vary as you move // along the "x" direction.

This produces a series of smooth bands of color that look like layers of color next to each other. Points at x=0 are the first color in the color map. As the X location increases it smoothly turns to the last color at x=1. Then it starts over with the first again and gradually turns into the last color at x=2. The pattern reverses for negative values of X. Using gradient y or gradient z makes the colors blend along the y or z axis. Any vector may be used but x, y and z are most common.

As a normal pattern, gradient generates a saw-tooth or ramped wave appearance. The syntax is

normal { gradient VECTOR, BUMP_FLOAT}

where the VECTOR giving the orientation is a required parameter but the BUMP_FLOAT bump size which follows is optional.

The pattern uses the ramp_wave wave type by default but may use any wave type. The pattern may be used with color_map, pigment_map, normal_map, slope_map and texture_map.


Section 3.6.7.10
Granite


The granite pattern.

This pattern uses a simple 1/f fractal noise function to give a good granite pattern. This pattern is used with creative color maps in STONES.INC to create some gorgeous layered stone textures.

As a normal pattern it creates an extremely bumpy surface that looks like a gravel driveway or rough stone.

The pattern uses the ramp_wave wave type by default but may use any wave type. The pattern may be used with color_map, pigment_map, normal_map, slope_map and texture_map.


Section 3.6.7.11
Hexagon

The hexagon pattern is a block pattern that generates a repeating pattern of hexagons in the XZ plane. In this instance imagine tall rods that are hexagonal in shape and are parallel to the Y axis and grouped in bundles like shown in the example image. Three separate colors should be specified as follows:

pigment {hexagon COLOR_1, COLOR_2, COLOR_3 }


The hexagon pattern.

The three colors will repeat the pattern shown above with hexagon COLOR_1 centered at the origin, COLOR_2 in the +Z direction and COLOR_3 to either side. Each side of the hexagon is one unit long. The hexagonal "rods" of color extend infinitely in the +Y and -Y directions. If no colors are specified then default blue, green, and red colors are used.

You may also use pigment statements in place of the colors. For example:

pigment { hexagon pigment { Jade }, pigment { White_Marble }, pigment { Black_Marble } }

When used with normals, the syntax is

normal { hexagon BUMP_FLOAT }

Where BUMP_FLOAT is an optional bump size float value. You may also use full normal statements. For example:

normal { hexagon normal { gradient x scale .2 }, normal { gradient y scale .2 }, normal { bumps scale .2 } }

When used with textures, the syntax is...

texture { hexagon texture { T_Gold_3A }, texture { T_Wood_3A }, texture { Stone12 } }

This is a block pattern which cannot use wave types, color_map, or slope_map modifiers.


Section 3.6.7.12
Leopard


The leopard pattern.

Leopard creates regular geometric pattern of circular spots.

The pattern uses the ramp_wave wave type by default but may use any wave type. The pattern may be used with color_map, pigment_map, normal_map, slope_map and texture_map.


Section 3.6.7.13
Mandel

The mandel pattern computes the standard Mandelbrot fractal pattern and projects it onto the X-Y plane. It uses the X and Y coordinates to compute the Mandelbrot set. The pattern is specified with the keyword mandel followed by an integer number. This number is the maximum number of iterations to be used to compute the set. Typical values range from 10 up to 256 but any positive integer may be used. For example:

pigment { mandel 25 color_map { [0.0 color Cyan] [0.3 color Yellow] [0.6 color Magenta] [1.0 color Cyan] } scale .5 }

The value passed to the color map is computed by the formula:

value = number_of_iterations / max_iterations

When used as a normal pattern, the syntax is...

normal { mandel ITER, BUMP_AMOUNT }

where the required integer ITER value is optionally followed by a float bump size.

The pattern extends infinitely in the Z direction similar to a planar image map. The pattern uses the ramp_wave wave type by default but may use any wave type. The pattern may be used with color_map, pigment_map, normal_map, slope_map and texture_map.


Section 3.6.7.14
Marble


The marble pattern.

The marble pattern is very similar to the gradient x pattern. The gradient pattern uses a default ramp_wave wave type which means it uses colors from the color map from 0.0 up to 1.0 at location x=1 but then jumps back to the first color for x > 1.0 and repeats the pattern again and again. However the marble pattern uses the triangle_wave wave type in which it uses the color map from 0 to 1 but then it reverses the map and blends from 1 back to zero. For example:

pigment { gradient x color_map { [0.0 color Yellow] [1.0 color Cyan] } }

This blends from yellow to cyan and then it abruptly changes back to yellow and repeats. However replacing gradient x with marble smoothly blends from yellow to cyan as the x coordinate goes from 0.0 to 0.5 and then smoothly blends back from cyan to yellow by x=1.0.

Earlier versions of POV-Ray did not allow you to change wave types. Now that wave types can be changed for most any pattern, the distinction between marble and gradient x is only a matter of default wave types.

When used with turbulence and an appropriate color map, this pattern looks like veins of color of real marble, jade or other types of stone. By default, marble has no turbulence.

The pattern may be used with color_map, pigment_map, normal_map, slope_map and texture_map.


Section 3.6.7.15
Onion


The onion pattern.

Onion is a pattern of concentric spheres like the layers of an onion. Each layer is one unit thick.

The pattern uses the ramp_wave wave type by default but may use any wave type. The pattern may be used with color_map, pigment_map, normal_map, slope_map and texture_map.


Section 3.6.7.16
Quilted


The quilted pattern.

The quilted pattern was originally designed only to be used as a normal pattern. The quilted pattern is so named because it can create a pattern somewhat like a quilt or a tiled surface. The squares are actually 3-D cubes that are 1 unit in size.

When used as a normal pattern it uses a specialized normal perturbation function. This means that the quilted pattern cannot be used with normal_map, slope_map, or wave type modifiers in a normal statement.

When used as a pigment pattern or texture pattern, the quilted pattern is similar to normal quilted but is not identical as are most normals when compared to pigments. When used in pigment or texture statements the quilted pattern uses the ramp_wave wave type by default but may use any wave type. The pattern may be used with color_map, pigment_map, and texture_map.

The two parameters, control0 and control1 are used to adjust the curvature of the "seam" or "gouge" area between the "quilts". The syntax is:

normal { quilted AMOUNT control0 FLOAT control1 FLOAT }

The values should generally be kept to around the 0.0 to 1.0 range. The default value is 1.0 if none is specified. Think of this "gouge" between the tiles in cross-section as a sloped line:


Quilted pattern controls.

This straight slope can be made to curve by adjusting the two control values. The control values adjust the slope at the top and bottom of the curve. A control values of 0 at both ends will give a linear slope, as shown above, yielding a hard edge. A control value of 1 at both ends will give an "s" shaped curve, resulting in a softer, more rounded edge.


Next Section
Table Of Contents